using System.Collections.Generic;
public class AOTGenericReferences : UnityEngine.MonoBehaviour
{

	// {{ AOT assemblies
	public static readonly IReadOnlyList<string> PatchedAOTAssemblyList = new List<string>
	{
		"Framework.Main.dll",
		"System.dll",
		"Table.Runtime.dll",
		"UniFramework.Event.dll",
		"UnityEngine.CoreModule.dll",
		"YooAsset.dll",
		"mscorlib.dll",
	};
	// }}

	// {{ constraint implement type
	// }} 

	// {{ AOT generic types
	// DataModelSingleton.<>c__DisplayClass4_0<object,object,object,int>
	// DataModelSingleton.<>c__DisplayClass5_0<object,object,object,int>
	// DataModelSingleton<object,object,object,int>
	// DicCtrl.<>c<object,object,int>
	// DicCtrl<object,object,int>
	// EventArgv<int,int>
	// EventArgv<int,object,object>
	// IDataModel<object,object,int>
	// IDataModelCenter<object,object,int>
	// ListCtrl.<>c<object,object,int>
	// ListCtrl<object,object,int>
	// SimpleObjectPool<object>
	// System.Action<InputCommand>
	// System.Action<System.Net.Sockets.Kcp.KcpSegment>
	// System.Action<long,int>
	// System.Action<long,object>
	// System.Action<object,object>
	// System.Action<object>
	// System.ArraySegment.Enumerator<byte>
	// System.ArraySegment<byte>
	// System.Buffers.IMemoryOwner<byte>
	// System.Buffers.MemoryManager<byte>
	// System.Buffers.ReadOnlySequence.<>c<byte>
	// System.Buffers.ReadOnlySequence<byte>
	// System.Buffers.ReadOnlySequenceSegment<byte>
	// System.Buffers.SpanAction<ushort,System.Buffers.ReadOnlySequence<ushort>>
	// System.ByReference<byte>
	// System.Collections.Concurrent.ConcurrentQueue.<Enumerate>d__28<System.Net.Sockets.Kcp.KcpSegment>
	// System.Collections.Concurrent.ConcurrentQueue.<Enumerate>d__28<System.ValueTuple<uint,uint>>
	// System.Collections.Concurrent.ConcurrentQueue.Segment<System.Net.Sockets.Kcp.KcpSegment>
	// System.Collections.Concurrent.ConcurrentQueue.Segment<System.ValueTuple<uint,uint>>
	// System.Collections.Concurrent.ConcurrentQueue<System.Net.Sockets.Kcp.KcpSegment>
	// System.Collections.Concurrent.ConcurrentQueue<System.ValueTuple<uint,uint>>
	// System.Collections.Generic.ArraySortHelper<InputCommand>
	// System.Collections.Generic.ArraySortHelper<System.Net.Sockets.Kcp.KcpSegment>
	// System.Collections.Generic.ArraySortHelper<object>
	// System.Collections.Generic.Comparer<InputCommand>
	// System.Collections.Generic.Comparer<System.Net.Sockets.Kcp.KcpSegment>
	// System.Collections.Generic.Comparer<object>
	// System.Collections.Generic.Comparer<uint>
	// System.Collections.Generic.Dictionary.Enumerator<int,int>
	// System.Collections.Generic.Dictionary.Enumerator<int,object>
	// System.Collections.Generic.Dictionary.Enumerator<long,object>
	// System.Collections.Generic.Dictionary.Enumerator<object,object>
	// System.Collections.Generic.Dictionary.KeyCollection.Enumerator<int,int>
	// System.Collections.Generic.Dictionary.KeyCollection.Enumerator<int,object>
	// System.Collections.Generic.Dictionary.KeyCollection.Enumerator<long,object>
	// System.Collections.Generic.Dictionary.KeyCollection.Enumerator<object,object>
	// System.Collections.Generic.Dictionary.KeyCollection<int,int>
	// System.Collections.Generic.Dictionary.KeyCollection<int,object>
	// System.Collections.Generic.Dictionary.KeyCollection<long,object>
	// System.Collections.Generic.Dictionary.KeyCollection<object,object>
	// System.Collections.Generic.Dictionary.ValueCollection.Enumerator<int,int>
	// System.Collections.Generic.Dictionary.ValueCollection.Enumerator<int,object>
	// System.Collections.Generic.Dictionary.ValueCollection.Enumerator<long,object>
	// System.Collections.Generic.Dictionary.ValueCollection.Enumerator<object,object>
	// System.Collections.Generic.Dictionary.ValueCollection<int,int>
	// System.Collections.Generic.Dictionary.ValueCollection<int,object>
	// System.Collections.Generic.Dictionary.ValueCollection<long,object>
	// System.Collections.Generic.Dictionary.ValueCollection<object,object>
	// System.Collections.Generic.Dictionary<int,int>
	// System.Collections.Generic.Dictionary<int,object>
	// System.Collections.Generic.Dictionary<long,object>
	// System.Collections.Generic.Dictionary<object,object>
	// System.Collections.Generic.EqualityComparer<System.Net.Sockets.Kcp.KcpSegment>
	// System.Collections.Generic.EqualityComparer<int>
	// System.Collections.Generic.EqualityComparer<long>
	// System.Collections.Generic.EqualityComparer<object>
	// System.Collections.Generic.EqualityComparer<uint>
	// System.Collections.Generic.ICollection<InputCommand>
	// System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<int,int>>
	// System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<int,object>>
	// System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<long,object>>
	// System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<object,object>>
	// System.Collections.Generic.ICollection<System.Net.Sockets.Kcp.KcpSegment>
	// System.Collections.Generic.ICollection<object>
	// System.Collections.Generic.IComparer<InputCommand>
	// System.Collections.Generic.IComparer<System.Net.Sockets.Kcp.KcpSegment>
	// System.Collections.Generic.IComparer<object>
	// System.Collections.Generic.IEnumerable<InputCommand>
	// System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<int,int>>
	// System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<int,object>>
	// System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<long,object>>
	// System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<object,object>>
	// System.Collections.Generic.IEnumerable<System.Net.Sockets.Kcp.KcpSegment>
	// System.Collections.Generic.IEnumerable<System.ValueTuple<uint,uint>>
	// System.Collections.Generic.IEnumerable<object>
	// System.Collections.Generic.IEnumerator<InputCommand>
	// System.Collections.Generic.IEnumerator<System.Collections.Generic.KeyValuePair<int,int>>
	// System.Collections.Generic.IEnumerator<System.Collections.Generic.KeyValuePair<int,object>>
	// System.Collections.Generic.IEnumerator<System.Collections.Generic.KeyValuePair<long,object>>
	// System.Collections.Generic.IEnumerator<System.Collections.Generic.KeyValuePair<object,object>>
	// System.Collections.Generic.IEnumerator<System.Net.Sockets.Kcp.KcpSegment>
	// System.Collections.Generic.IEnumerator<System.ValueTuple<uint,uint>>
	// System.Collections.Generic.IEnumerator<object>
	// System.Collections.Generic.IEqualityComparer<int>
	// System.Collections.Generic.IEqualityComparer<long>
	// System.Collections.Generic.IEqualityComparer<object>
	// System.Collections.Generic.IList<InputCommand>
	// System.Collections.Generic.IList<System.Net.Sockets.Kcp.KcpSegment>
	// System.Collections.Generic.IList<object>
	// System.Collections.Generic.KeyValuePair<int,int>
	// System.Collections.Generic.KeyValuePair<int,object>
	// System.Collections.Generic.KeyValuePair<long,object>
	// System.Collections.Generic.KeyValuePair<object,object>
	// System.Collections.Generic.LinkedList.Enumerator<System.Net.Sockets.Kcp.KcpSegment>
	// System.Collections.Generic.LinkedList<System.Net.Sockets.Kcp.KcpSegment>
	// System.Collections.Generic.LinkedListNode<System.Net.Sockets.Kcp.KcpSegment>
	// System.Collections.Generic.List.Enumerator<InputCommand>
	// System.Collections.Generic.List.Enumerator<System.Net.Sockets.Kcp.KcpSegment>
	// System.Collections.Generic.List.Enumerator<object>
	// System.Collections.Generic.List<InputCommand>
	// System.Collections.Generic.List<System.Net.Sockets.Kcp.KcpSegment>
	// System.Collections.Generic.List<object>
	// System.Collections.Generic.ObjectComparer<InputCommand>
	// System.Collections.Generic.ObjectComparer<System.Net.Sockets.Kcp.KcpSegment>
	// System.Collections.Generic.ObjectComparer<object>
	// System.Collections.Generic.ObjectComparer<uint>
	// System.Collections.Generic.ObjectEqualityComparer<System.Net.Sockets.Kcp.KcpSegment>
	// System.Collections.Generic.ObjectEqualityComparer<int>
	// System.Collections.Generic.ObjectEqualityComparer<long>
	// System.Collections.Generic.ObjectEqualityComparer<object>
	// System.Collections.Generic.ObjectEqualityComparer<uint>
	// System.Collections.Generic.Queue.Enumerator<object>
	// System.Collections.Generic.Queue<object>
	// System.Collections.Generic.Stack.Enumerator<object>
	// System.Collections.Generic.Stack<object>
	// System.Collections.ObjectModel.ReadOnlyCollection<InputCommand>
	// System.Collections.ObjectModel.ReadOnlyCollection<System.Net.Sockets.Kcp.KcpSegment>
	// System.Collections.ObjectModel.ReadOnlyCollection<object>
	// System.Comparison<InputCommand>
	// System.Comparison<System.Net.Sockets.Kcp.KcpSegment>
	// System.Comparison<object>
	// System.Func<System.Threading.Tasks.VoidTaskResult>
	// System.Func<object,System.Threading.Tasks.VoidTaskResult>
	// System.Func<object,object,object>
	// System.Func<object>
	// System.Memory<byte>
	// System.Net.Sockets.Kcp.ISegmentManager<System.Net.Sockets.Kcp.KcpSegment>
	// System.Net.Sockets.Kcp.KcpCore.KcpInnerBuffer<System.Net.Sockets.Kcp.KcpSegment>
	// System.Net.Sockets.Kcp.KcpCore<System.Net.Sockets.Kcp.KcpSegment>
	// System.Predicate<InputCommand>
	// System.Predicate<System.Net.Sockets.Kcp.KcpSegment>
	// System.Predicate<object>
	// System.ReadOnlyMemory<byte>
	// System.ReadOnlySpan<byte>
	// System.Runtime.CompilerServices.AsyncTaskMethodBuilder<System.Threading.Tasks.VoidTaskResult>
	// System.Runtime.CompilerServices.ConditionalWeakTable.CreateValueCallback<object,object>
	// System.Runtime.CompilerServices.ConditionalWeakTable.Enumerator<object,object>
	// System.Runtime.CompilerServices.ConditionalWeakTable<object,object>
	// System.Runtime.CompilerServices.ConfiguredTaskAwaitable.ConfiguredTaskAwaiter<System.Threading.Tasks.VoidTaskResult>
	// System.Runtime.CompilerServices.ConfiguredTaskAwaitable<System.Threading.Tasks.VoidTaskResult>
	// System.Runtime.CompilerServices.TaskAwaiter<System.Threading.Tasks.VoidTaskResult>
	// System.Span<byte>
	// System.Threading.Tasks.ContinuationTaskFromResultTask<System.Threading.Tasks.VoidTaskResult>
	// System.Threading.Tasks.Task<System.Threading.Tasks.VoidTaskResult>
	// System.Threading.Tasks.TaskFactory.<>c__DisplayClass35_0<System.Threading.Tasks.VoidTaskResult>
	// System.Threading.Tasks.TaskFactory<System.Threading.Tasks.VoidTaskResult>
	// System.ValueTuple<uint,uint>
	// UnityEngine.Events.InvokableCall<byte>
	// UnityEngine.Events.InvokableCall<object>
	// UnityEngine.Events.UnityAction<UnityEngine.SceneManagement.Scene,UnityEngine.SceneManagement.Scene>
	// UnityEngine.Events.UnityAction<byte>
	// UnityEngine.Events.UnityAction<object>
	// UnityEngine.Events.UnityEvent<byte>
	// UnityEngine.Events.UnityEvent<object>
	// }}

	public void RefMethods()
	{
		// System.Void EventDispatchManager.SendEvent<EventArgv<int,object,object>>(int,EventArgv<int,object,object>)
		// object Framework.TableManager.GetTable<object>()
		// object Framework.TableManager.GetTableInternal<object>()
		// System.Void Framework.TableManager.LoadTable<object>()
		// System.Void Framework.TableManager.LoadTableInternal<object>()
		// object MessagePool.Fetch<object>()
		// object System.Activator.CreateInstance<object>()
		// byte[] System.Array.Empty<byte>()
		// System.Void System.Runtime.CompilerServices.AsyncTaskMethodBuilder.AwaitUnsafeOnCompleted<System.Runtime.CompilerServices.TaskAwaiter,KcpClientHandle.<<Start>b__6_0>d>(System.Runtime.CompilerServices.TaskAwaiter&,KcpClientHandle.<<Start>b__6_0>d&)
		// System.Void System.Runtime.CompilerServices.AsyncTaskMethodBuilder<System.Threading.Tasks.VoidTaskResult>.AwaitUnsafeOnCompleted<System.Runtime.CompilerServices.TaskAwaiter,KcpClientHandle.<<Start>b__6_0>d>(System.Runtime.CompilerServices.TaskAwaiter&,KcpClientHandle.<<Start>b__6_0>d&)
		// System.Void System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start<KcpClientHandle.<<Start>b__6_0>d>(KcpClientHandle.<<Start>b__6_0>d&)
		// int System.Runtime.InteropServices.Marshal.SizeOf<Framework.Table.FrameConfigTableItem>()
		// int System.Runtime.InteropServices.Marshal.SizeOf<Framework.Table.GamePurchaseTableItem>()
		// int System.Runtime.InteropServices.Marshal.SizeOf<Framework.Table.MessageTableItem>()
		// int System.Runtime.InteropServices.Marshal.SizeOf<Framework.Table.UnitTableItem>()
		// System.Void UIFrameManager.CloseFrame<object>(object)
		// System.Void UIFrameManager.OpenFrame<object>(int,UILayer,string,string)
		// System.Void UniFramework.Event.EventGroup.AddListener<object>(System.Action<UniFramework.Event.IEventMessage>)
		// object UnityEngine.Component.GetComponent<object>()
		// object UnityEngine.GameObject.AddComponent<object>()
		// object UnityEngine.GameObject.GetComponent<object>()
		// object UnityEngine.Object.Instantiate<object>(object,UnityEngine.Transform,bool)
		// int UnityEngine.Playables.PlayableOutputExtensions.GetSourceOutputPort<UnityEngine.Animations.AnimationPlayableOutput>(UnityEngine.Animations.AnimationPlayableOutput)
		// System.Void UnityEngine.Playables.PlayableOutputExtensions.SetSourcePlayable<UnityEngine.Animations.AnimationPlayableOutput,UnityEngine.Animations.AnimationClipPlayable>(UnityEngine.Animations.AnimationPlayableOutput,UnityEngine.Animations.AnimationClipPlayable)
		// YooAsset.AssetHandle YooAsset.ResourcePackage.LoadAssetAsync<object>(string,uint)
		// YooAsset.AssetHandle YooAsset.ResourcePackage.LoadAssetSync<object>(string)
		// YooAsset.AssetHandle YooAsset.YooAssets.LoadAssetAsync<object>(string,uint)
		// YooAsset.AssetHandle YooAsset.YooAssets.LoadAssetSync<object>(string)
	}
}